-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change Go to use net.FD for peer and host #725
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
#define MAX_CONCURRENT_REQUESTS 10000 // 10000 requests per second max for a single traced process | ||
#define MAX_CONCURRENT_SHARED_REQUESTS 30000 // 10 * MAX_CONCURRENT_REQUESTS total ongoing requests, for maps shared among multiple tracers, e.g. pinned maps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could address this as another task, for other maps too: you can move the map sizing from compile-time to runtime and let the user decide the size (this way we could troubleshoot better).
This is how the Network Metrics side does it at the user side, from the user configuration:
https://github.com/grafana/beyla/blob/main/pkg/internal/netolly/ebpf/tracer.go#L85-L86
The aggregated_flows map does not define any size when it is compiled:
https://github.com/grafana/beyla/blob/main/bpf/flows.c#L56-L60
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah great point, I'll follow-up with a configuration option. 1000 was way too small, too many collisions on my 20 core machine.
Remove all host, peer parsing for Go in eBPF, rely on getting the information consistently from the connection information.